#include "mysqlconnect.h"

MySqlConnect::MySqlConnect()//连接数据库
{
        db = QSqlDatabase::addDatabase("QMYSQL");  //连接的MYSQL的数据库驱动
        db.setHostName("localhost");         //主机名
        db.setPort(3306);                    //端口
        db.setDatabaseName("music");          //数据库名
        db.setUserName("root");              //用户名
        db.setPassword("199912");            //密码
        //测试连接
        if(!db.open())
        {
            qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
            exit(-1);
        }
        else
        {
             qDebug()<<"连接成功"<<"connect to mysql OK";
        }
}


MySqlConnect::~MySqlConnect()//关闭数据库
{
    db.close();
}

QVector<Music> MySqlConnect::query_music()
{
    QVector<Music> v;
    QSqlQuery query;
    query.exec("SELECT * FROM musicinf"); // 查询的结果可能不止一条记录，所以我们称之为结果集
    while (query.next())
    {

        //歌曲编号
        //int music_num=query.value(0).toInt();
        //歌曲名
        QString title=query.value(0).toString();
        //唱片集
        QString albumTitle=query.value(1).toString();
        //时长
        //qint64 duration=query.value(2).toLongLong();
        //比特率
        //int audioBitRate=query.value(3).toInt();
        //歌曲资源地址
        QUrl url=QUrl(query.value(2).toString());
        //歌手编号
        int singer_num=query.value(3).toInt();
        //语种
        QString language=query.value(4).toString();
        //图片url
        QUrl image_url=QUrl(query.value(5).toString());
        v.push_back(Music(url,singer_num,title,albumTitle,language,image_url));
    }
    return v;
}


QVector<Music> MySqlConnect::search_query(QString text)
{
   QVector<Music> v;
   QSqlQuery query;
   query.exec("SELECT * FROM musicinf WHERE NAME LIKE "+text);
   while (query.next())
   {

       //歌曲编号
       //int music_num=query.value(0).toInt();
       //歌曲名
       QString title=query.value(0).toString();
       //唱片集
       QString albumTitle=query.value(1).toString();
       //时长
       //qint64 duration=query.value(2).toLongLong();
       //比特率
       //int audioBitRate=query.value(3).toInt();
       //歌曲资源地址
       QUrl url=QUrl(query.value(2).toString());
       //歌手编号
       int singer_num=query.value(3).toInt();
       //语种
       QString language=query.value(4).toString();
       //图片url
       QUrl image_url=QUrl(query.value(5).toString());
       v.push_back(Music(url,singer_num,title,albumTitle,language,image_url));
   }
   return v;
}


